<?php
namespace Forms\Validator;

use Pinenut\Form\Validator;

class CheckAgeAction extends Validator {

	protected $defaultErrorMessage = 'You arent 18 years old.';

	protected function isValid($value, $params) {
		
		// выключаем кеширование, т.к. действие зависит от вермени, 
		// а вынести мы эту зависимость не можем
		$this->response->noCache(true);
		
		$year = 0;
		$month = 0;
		$day = 0;
		
		$year = date('Y',time()) - date('Y',$params['value']);
		
		//если разница в годах больше 18 то сразу возвращаем тру.
		
		if($year > 18){
			return true;
		}
		
		$month = date('m',$params['value']) - date('m',time());
		
		//если разница с годами 18 лет, проверяем по месяцам.
		if($year == 18 && $month > 0){
			return true;
		}

		$day = date('d',$params['value']) - date('d',time());

		//Ну и в конце, в случае если на текущий момент ему есть 18 лет и совпадает месяц рождения, проверяем по дням. В случае если его день рождения текущий день, 
		//то все равно не пускаем.
		if($year == 18 && $month == 0 && $day > 0){
			return true;
		};

		return false;
	}
}